|
 |
Applicazioni Software |
PROGETTO n° 06 - 7/12
[94 di 166] |
 | In coerenza con la mia filosofia di programmazione, le
parti specifiche del programma sono affidate
a procedure locali specializzate,
descritte in sequenza a partire da questa pagina;
ti consiglio di
aprire una seconda finestra con lo
schema elettrico dell'interfaccia,
durante la lettura della descrizione. |
| |
|
Sincronizzazione
della partenza
della conversione Analogico Digitale |
 | La
Procedura
Converti si occupa della
conversione digitale
del segnale fornito sull'ingresso
analogico, per esempio la tensione
presente sul cursore di un
potenziometro. |
 | In pratica genera il segnale di
START, per far
partire una sessione di conversione, e rimane in attesa del
segnale di Fine Conversione, per
rendere disponibile il dato a 8 bit; le
caselle di testo di
questa pagina mostrano in dettaglio il suo codice Assembly: |
 | La prima fase consiste nel far partire
la conversione, nei tempi e nei
modi previsti dal convertitore
ADC0804. |
 | In pratica, non appena
sulla sua linea WR viene forzato un breve
impulso basso (di almeno 100 ns
di durata), l'ADC provvede a
campionare i suoi ingressi
analogici e ad associare al campione rilevato un numero binario a 8 bit. |
 | La presenza di WR
attivo verrà però riconosciuta
solo se il chip è selezionato, cioè
se anche il
segnale CS è stabilmente a 0. |
 | Ecco come la procedura ricostruisce la
sequenza temporale richiesta, generando
2 impulsi bassi:
 | per prima cosa forza CS (pin1 dell'ADC)
a 0
e WR (pintre dell'ADC)
a 0,
in stretta sequenza, ponendo il medesimo
valore logico rispettivamente sui bit0 e bit2
del
Registro d'uscita 0378H/0278H
della porta parallela, disponibili rispettivamente sui pin 2 e 4
del suo
connettore. |
 | poiché, escluso il bit1
destinato al controllo del segnale RD,
tutti gli altri bit corrispondono a linee non utilizzate, il loro valore è
indifferente ed è stato fissato a 1, per
cui sul registro verranno scritte,
in sequenza, le combinazioni
11111110 e 11111010. |
 | la successiva chiamata della
Procedura
Delay (almeno 100ns)
consente all'ADC di riconoscere i 2
livelli bassi. |
 | trascorso questo tempo la procedura provvederà a riportare
WR e CS
a 1,
ancora in stretta sequenza |
|
 | La conversione
parte sul fronte di salita di
WR; dopo circa 450ns
da questo evento la
linea di INTR (pin 5 dell'ADC)
viene comunque alzata per segnalare che il
convertitore sta per passare dallo stato d'attesa
a quello di busy, nel quale sarà
appunto occupato al tradurre in binario del livello di tensione ad esso
sottoposto. |
 | Il tempo di conversione
è previsto da un minimo di 103 μs ad un max di
114 μs. |
 | La seconda
fase consiste nel rimanere in attesa
della fine della conversione:
 | quando la conversione è ultimata l'ADC
forza di nuovo a 0 la linea
INTR |
 | il codice assembly rimarrà perciò in attesa
di questo istante, interrogando
(polling) questa linea d'uscita, fino a
che passerà a 0 |
 | la linea INTR è
leggibile sul bit3 del
Registro d'ingresso
0379H/0279H
della porta parallela, disponibile sul pin 15
del suo
connettore |
 | in questo istante la
procedura si può ritenere ultimata. |
|
 |
NB:
Durante questa fase il processore
rimane in attesa
della fine della conversione,
per cui se il convertitore non
è attaccato
alla porta non è possibile
uscire dal programma in
esecuzione! |
 | Da notare che il dato a 8 bit non è ancora presente sulle
uscite dell'ADC, ma
solo sul latch interno
del dispositivo; per disporne esternamente è
necessario attivare il segnale
RD (vedi
Procedura
Leggi). |
©
2001-2006 - Studio Tecnico
ing. Giorgio OBER
Tutti i diritti sono riservati
|